From: Christian Hergert Date: Fri, 13 Sep 2019 23:02:28 +0000 (-0700) Subject: textview: fix textview drawing in presence of gutters X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1~1^2~321^2^2~851^2~1 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=605284bc3666e9a74a1884ffaeaacd726ac394b7;p=gtk4.git textview: fix textview drawing in presence of gutters When drawing a left or top gutter, we need to adjust the origin of the text snapshot or we risk the gutter drawing above the text. --- diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index c9657cef10..4568e735fe 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -5390,6 +5390,18 @@ draw_text (GtkWidget *widget, GtkTextView *text_view = GTK_TEXT_VIEW (widget); GtkTextViewPrivate *priv = text_view->priv; GtkStyleContext *context; + graphene_point_t translate = {0}; + + if (priv->left_window) + translate.x = priv->left_window->allocation.width; + if (priv->top_window) + translate.y = priv->top_window->allocation.height; + + if (translate.x || translate.y) + { + gtk_snapshot_save (snapshot); + gtk_snapshot_translate (snapshot, &translate); + } context = gtk_widget_get_style_context (widget); gtk_style_context_save_to_node (context, text_view->priv->text_window->css_node); @@ -5420,6 +5432,9 @@ draw_text (GtkWidget *widget, GTK_TEXT_VIEW_GET_CLASS (text_view)->snapshot_layer (text_view, GTK_TEXT_VIEW_LAYER_ABOVE_TEXT, snapshot); gtk_snapshot_restore (snapshot); } + + if (translate.x || translate.y) + gtk_snapshot_restore (snapshot); } static void